package cn.yunyichina.provider.pay.wechat.service;

import cn.yunyichina.provider.iface.entity.common.ResCommon;
import cn.yunyichina.provider.iface.entity.common.ResponseObject;
import cn.yunyichina.provider.iface.entity.dto.pay.*;
import cn.yunyichina.provider.iface.entity.dto.wechat.WechatWebPayRequestDTO;
import cn.yunyichina.provider.iface.entity.dto.wechat.WechatWebPayResponseDTO;
import cn.yunyichina.provider.iface.entity.pay.WechatMedicalBillDownloadRequest;
import cn.yunyichina.provider.iface.entity.pay.WechatMedicalBillDownloadResponse;

/**
 * Created by Lullaby on 2016/9/19.
 */
public interface WechatPayService {

    ResponseObject jsapiWechatPay(String json);

    ResponseObject appWechatPay(String json);

    ResponseObject nativeWechatPay(String json);

    ResponseObject medicalWechatPay(String json);

    ResCommon<WechatMicroPayResponseDTO> microWechatPay(WechatMicroPayRequestDTO request);

    ResCommon<WechatOrderQueryResponseDTO> queryWechatOrder(WechatOrderQueryRequestDTO wechatOrderQueryRequestDTO);

    ResCommon<WechatOrderReverseResponseDTO> reverseWechatOrder(WechatOrderReverseRequestDTO wechatOrderReverseRequestDTO);

    ResCommon<WechatMedicalBillDownloadResponse> downloadWechatMedicalBill(WechatMedicalBillDownloadRequest request);

    ResCommon<WechatWebPayResponseDTO> webPay(WechatWebPayRequestDTO request);

}
